import java.util.ArrayList;
import java.util.List;

public class code3 {
//    力扣 150 汇总区间
public List<String> summaryRanges(int[] nums) {
    // 这道题目可以使用 双指针实现滑动窗口
    // 首先创建出一个链表用来记录返回值
    List<String> re = new ArrayList<>();
    // 定义出两个指针，一前一后
    int a = 0;
    int b = 1;

    // 先来判断一下 nums 为 null 时的情况
    if(nums == null || nums.length == 0) {
        return new ArrayList<>();
    }

    while(b <= nums.length) {
        // 此时就需要判断一下这里的 nums[a] 和 nums[b] 是否是连续递增的
        // 如果是连续递增就会符合 nums[b] - nums[a] == b - a;
        // 因为数组也是从 0 - n 增加的
        if(b == nums.length || nums[b] - nums[a] != b - a) {
            // 如果 出现 不相等 这就说明了这里的数不是连续递增的
            // 此时就创建出一个 字符串 将 a 位置的值进行添加
            StringBuffer t = new StringBuffer(Integer.toString(nums[a]));
            // 还需要注意一点，题目说的是无重复元素！！
            if(b - a > 1) {
                // 如果说 这里 两个 下标的位置相差距离
                // 此时就符合题意，在这个字符串的基础上添加 箭头 和 b 的值
                t.append("->");
                t.append(nums[b - 1]);
            }
            // 将构造好的字符串添加到来表中
            re.add(t.toString());
            // 添加完成后，将 窗口进行移动
            a = b;
        }
        b++;
    }
    return re;
}
}
